﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Controladora.Seguridad
{
    public class CUCambiarClave
    {
        private static CUCambiarClave _Instancia;

        public static CUCambiarClave ObtenerInstancia()
        {
               if (_Instancia == null)
               {
                   _Instancia = new CUCambiarClave();
               }
               return _Instancia;
        }

        private CUCambiarClave()
        {
           //Servicios.Conexion.ObtenerInstancia().Conectar("Seguridad");
           //Modelo.Seguridad.CatalogoUsuarios.ObtenerInstancia(); 
           //Servicios.Conexion.ObtenerInstancia().Desconectar();
        }
        public bool CambiaClave(string claveActual,string claveNueva,Entidades.Seguridad.Usuario oUsuario)
        {
            string claveAtualEncrip = Encriptar(claveActual);
            string claveNuevaEncrip = Encriptar(claveNueva);

            if (oUsuario.Clave != claveAtualEncrip) 
            {
                return false;
            }
            else
            {
                oUsuario.Clave = claveNuevaEncrip;
                Servicios.Conexion.ObtenerInstancia().Conectar("Seguridad");
                Modelo.Seguridad.CatalogoUsuarios.ObtenerInstancia().ModificarUsuario(oUsuario);
                Servicios.Conexion.ObtenerInstancia().Desconectar("Seguridad");
            }

            return true;
        }

        private string Encriptar(string valor)
        {
            System.Security.Cryptography.SHA1CryptoServiceProvider provider = new System.Security.Cryptography.SHA1CryptoServiceProvider();
            byte[] bytes = System.Text.Encoding.UTF8.GetBytes(valor);
            byte[] inArray = provider.ComputeHash(bytes);
            provider.Clear();
            return Convert.ToBase64String(inArray);
        }
    }
}
